最近的文章陸續提到了 Neo4j in Docker、Casual Cluster、K8S、Helm Chart,讓我們部署可擴展的叢集服務愈來愈方便,那有沒有更懶更方便的作法呢?有喔,就是今天的主角 Neo4j Aura
它就是 Neo4j 自家的雲端服務 DBaaS,目前已部署在美國(俄勒岡、南加州、艾奧瓦)、比利時、英國、澳洲、台灣、香港幾個國家。使用 Aura 你不再需要管理底層的部署與設定細節、叢集的自動擴展與安全性設定等,對於只想專注時間在應用程式與商業邏輯的純開發者來說是非常方便的。
Aura 在今年 2020/7/22 已經正式全面升級到 Neo4j 4.0,建立資料庫的時候只能選擇這個版本。
從 http://console.neo4j.io/ 進入 Neo4j Aura 控制台,可用 Google 帳號註冊,登入成功後會看到很簡潔的畫面就不附圖了,直接來試開一個資料庫,很開心有台灣^^,台灣是今年 2020/7/21 才剛被加入部署區域的,還很新。
資料庫大小的選擇非常簡單直覺,左邊還有小動畫表示資料庫服務的適用大小,以及自動加總一個月的費用給你參考;目前最小的 Aura 服務一個月大約台幣 2000 上下。
建立完成後會取得一組帳密,在 DB 清單就顯示著 Running,等服務確實啟動後,才會開始算錢
那能否建立兩個甚至多個資料庫服務呢?當然可以,不過要注意右上角的價錢計算就會乘以倍數XD,點選自己的帳號可以看到計價的細節。
資料庫服務啟動完成後,你可以照往常的習慣,一模一樣的開始使用 Neo4j Browser。對 Bloom 的支援則還是 beta 階段。
Aura 的定位是給完全不想觸碰底層系統與網路架構的開發者或企業使用,所以介面也非常的簡單,不過相對的管理彈性也不大。
每個資料庫能被監控的部分就是 Page Cache、Out of Memory Errors、Garbage Collection Time (%)、CPU Usage (%)、Storage Used (%),我的感覺是,對一個正式營運的中大型線上服務而言,這樣的資訊仍是不夠的。
資料庫的自動備份是在每天 UTC 00:00 時間觸發,或是每次 Aura 系統有改版之前,備份只會保留 7 天,並且無法修改。同樣的,這樣的彈性對正式環境我還是覺得不夠。
開發者可以隨時更改 DB 大小,而不會造成停機時間,設定的介面跟建立資料庫時的選項完全一樣
如果要從本地端資料庫,匯入到 Aura 雲端也非常方便,無論你是安裝 Neo4j Desktop、Neo4j Server 還是 Docker Image,官網都有 Step-by-Step 教學,基本上就是透過下述的指令。
不過要特別注意的是,目前 Neo4j 4.0 似乎還不支援直接推到雲端,必須改為上傳 CSV 檔案。Neo4j 3.5 才可以使用 push-to-cloud 指令。
bin/neo4j-admin help push-to-cloud
我個人認為,Neo4j Aura 提供了最高 128 CPU, 128G RAM 如此大的叢集資料庫服務,卻搭配完全只針對開發者,不夠彈性的管理,感覺這樣的搭配不太對稱,真的會有企業願意花大錢租用這麼高檔的服務,卻接受只有開發者層級的監控和彈性嗎?
如果你的企業需要更彈性的操作與管理,Neo4j 官方其實還提供一個服務 Neo4j Cloud Managed Services (CMS),這部分的資訊相對少得多,他是由 Neo4j 專家們協助幫你管理、設定底層硬體與網路架構細節,但你仍會有一定的彈性與權力可以修改底層,不像 Aura 這樣完全黑盒子。
至於其他大型雲端服務的 Neo4j,像是AWS 社區版、AWS 企業因果叢集版、AWS EC2 AMI、Azure VM、GCP 企業因果叢集版 等等,還是比較適合正式營運的中大型線上服務,因為企業內一定會有客製網路設定、路由、硬體配置、安全性、自動擴展、備份計畫的需求。又或是假如企業內已經有採用 AWS 部署許多內外服務與資源,那麼把 Neo4j 部署在同一個雲端,應該會比較符合公司的統一管理策略。
好了,我要去關 Aura 機器了,這篇文章花了 0.18 美金 XD
我的研究與分享到這,謝謝大家的點閱~